//package com.xls.commonlibrary.ad.sigmob.ads;
//
//import static com.xls.commonlibrary.constant.Const.GAME_SHOW_AD_SIGMOB_REWARD_LAST_TIME;
//
//import android.util.Log;
//import android.webkit.ValueCallback;
//
//import androidx.appcompat.app.AppCompatActivity;
//import androidx.lifecycle.DefaultLifecycleObserver;
//import androidx.lifecycle.LifecycleOwner;
//
//import com.hjq.toast.Toaster;
//import com.orhanobut.logger.Logger;
//import com.windmill.sdk.WMConstants;
//import com.windmill.sdk.WindMillError;
//import com.windmill.sdk.models.AdInfo;
//import com.windmill.sdk.reward.WMRewardAd;
//import com.windmill.sdk.reward.WMRewardAdListener;
//import com.windmill.sdk.reward.WMRewardAdRequest;
//import com.windmill.sdk.reward.WMRewardInfo;
//import com.xls.commonlibrary.ad.adn.reward.bean.AdBean;
//import com.xls.commonlibrary.util.MMKVUtil;
//
//import java.util.HashMap;
//import java.util.Map;
//
//import io.reactivex.rxjava3.annotations.NonNull;
//
//public class SigmobRewardUtil {
//    private static volatile SigmobRewardUtil singleton = null;
//
//    private SigmobRewardUtil() {
//    }
//
//    public static SigmobRewardUtil getInstance() {
//        if (singleton == null) {
//            synchronized (SigmobRewardUtil.class) {
//                if (singleton == null) {
//                    singleton = new SigmobRewardUtil();
//                }
//            }
//        }
//        return singleton;
//    }
//
//    ///////////////////////////////////////////////////
//    AppCompatActivity activity;
//    private ValueCallback<AdBean> callback;// 播放 专用回调   将AdBean回调到UI层
//
//    private String placementId = "7872317221569814";// 正式 源id 包含了各adn的广告id
//
//    private WMRewardAd windRewardedVideoAd;
//    private String userID = "123456789";
//
//    long coolTime = 20 * 1000L;// showAd后冷却time  s，才允许再次showAd
//
//    long lastShowTime = 0;
//
//    private boolean check() {// 是否冷却的检测
//        lastShowTime = MMKVUtil.getInstance().getKV().decodeLong(GAME_SHOW_AD_SIGMOB_REWARD_LAST_TIME);
//
//
//        boolean result = true;// 是否允许操作
//
//        if ((System.currentTimeMillis() - lastShowTime) < coolTime) {
//            result = false;
//        }
//
//        if (result) {
//            // 允许弹广告，缓存当前时间
//            MMKVUtil.getInstance().getKV().encode(GAME_SHOW_AD_SIGMOB_REWARD_LAST_TIME, System.currentTimeMillis());
//        }
//
//        Logger.d("=======SigmobRewardUtil=========check===========:" + result);
//
//        return result;
//    }
//
//
//    public void showAd(@NonNull AppCompatActivity activity,
//                       @NonNull ValueCallback<AdBean> valueCallback) {
//
//        if (!check()) {
//            Toaster.show("点的太快了，等会儿吧");
//            return;
//        }
//
//        this.activity = activity;
//        this.callback = valueCallback;
//
//        addLifecycle();
//
//
//        loadAd();
//    }
//
//    public void callbackShowSuccess(AdInfo adInfo) {// 播放成功回调
//        if (callback == null) return;
//        // build AdBean for callback
//        AdBean bean = new AdBean();
//        bean.setShowSuccess(true);
//        bean.setEcpm(adInfo.geteCPM());
//        //bean.setAdn(Const.TYPE_SIGMOB);
//        bean.setAdn(adInfo.getNetworkName());// todo 需要后台再次确认adn的name  gdt  类似
//        bean.setAdType("激励视频");
//        callback.onReceiveValue(bean);
//    }
//
//    public void callbackShowFail() {// 播放失败回调
//        if (callback == null) return;
//        // build AdBean for callback
//        AdBean bean = new AdBean();
//        bean.setShowSuccess(false);
//        callback.onReceiveValue(bean);
//    }
//
//    private void addLifecycle() {// 重要
//        if (this.activity == null) return;
//
//        this.activity.getLifecycle().addObserver(new DefaultLifecycleObserver() {
//            // 还有很多生命周期都可以感知
//            // 这里只关注 onDestroy()的注销ad对象
//            @Override
//            public void onDestroy(LifecycleOwner owner) {
//                DefaultLifecycleObserver.super.onDestroy(owner);
////                Logger.d("===========LifecycleOwner=========onDestroy===========");
//
//
//                /** 6、在onDestroy中销毁广告 */
//                if (windRewardedVideoAd != null) {
//                    windRewardedVideoAd.destroy();
//                    windRewardedVideoAd = null;
//                }
//
//            }
//        });
//
//    }
//
//    private void loadAd() {
//        Map<String, Object> options = new HashMap<>();
//        options.put("user_id", String.valueOf(userID));
//        windRewardedVideoAd = new WMRewardAd(this.activity, new WMRewardAdRequest(placementId, userID, options));
//        windRewardedVideoAd.setRewardedAdListener(new WMRewardAdListener() {
//            @Override
//            public void onVideoAdLoadSuccess(final String placementId) {
//                Log.d("lance", "------onVideoAdLoadSuccess------" + placementId);
//                if (windRewardedVideoAd != null && windRewardedVideoAd.isReady()) {
//                    HashMap option = new HashMap();
//                    option.put(WMConstants.AD_SCENE_ID, "567");
//                    option.put(WMConstants.AD_SCENE_DESC, "转盘抽奖");
//
//                    windRewardedVideoAd.show(activity, option);
//                } else {
//                    Log.d("lance", "------Ad is not Ready------");
//
//                }
//            }
//
//            @Override
//            public void onVideoAdPlayEnd(AdInfo adInfo) {
//                Log.d("lance", "------onVideoAdPlayEnd------" + adInfo.getPlacementId());
//            }
//
//            @Override
//            public void onVideoAdPlayStart(AdInfo adInfo) {
//                Log.d("lance", "------onVideoAdPlayStart------" + adInfo.getPlacementId() );
//            }
//
//            @Override
//            public void onVideoAdClicked(AdInfo adInfo) {
//                Log.d("lance", "------onVideoAdClicked------" + adInfo.getPlacementId() );
//            }
//
//            @Override
//            public void onVideoAdClosed(AdInfo adInfo) {
//                Log.d("lance", "------onVideoAdClosed------" + adInfo.getPlacementId() + adInfo.toString());
//
//
////                Toaster.show("ecpm: " + adInfo.geteCPM());
//
//                callbackShowSuccess(adInfo);
//
//            }
//
//            @Override
//            public void onVideoRewarded(AdInfo adInfo, final WMRewardInfo rewardInfo) {
//                Log.d("lance", "------onVideoRewarded---ecpm---" + rewardInfo.toString() + ":" );
//
//
//            }
//
//            @Override
//            public void onVideoAdLoadError(final WindMillError error, final String placementId) {
//                Log.d("lance", "------onVideoAdLoadError------" + error.toString() + ":" + placementId);
//
////                { "error_code":700400, "message": error_code:500448 msg:当前瀑布流仅包括竞价广告源,并且均无竞价响应 }:4319619439354367
//                callbackShowFail();
//
//            }
//
//            @Override
//            public void onVideoAdPlayError(final WindMillError error, final String placementId) {
//                Log.d("lance", "------onVideoAdPlayError------" + error.toString() + ":" + placementId);
//            }
//        });
//
//        windRewardedVideoAd.loadAd();
//    }
//
//
//}
